
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
// 
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

/**
 * AUTO-GENERATED FILE. DO NOT MODIFY.
 */

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
// 
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.
import { __extends } from 'tslib';
import Axis from '../Axis.js';

var Axis2D =
/** @class */
function (_super) {
	__extends(Axis2D, _super);

	function Axis2D(dim, scale, coordExtent, axisType, position) {
		var _this = _super.call(this, dim, scale, coordExtent) || this;
		/**
     * Index of axis, can be used as key
     * Injected outside.
     */

		_this.index = 0;
		_this.type = axisType || 'value';
		_this.position = position || 'bottom';
		return _this;
	}

	Axis2D.prototype.isHorizontal = function () {
		var position = this.position;
		return position === 'top' || position === 'bottom';
	};
	/**
   * Each item cooresponds to this.getExtent(), which
   * means globalExtent[0] may greater than globalExtent[1],
   * unless `asc` is input.
   *
   * @param {boolean} [asc]
   * @return {Array.<number>}
   */

	Axis2D.prototype.getGlobalExtent = function (asc) {
		var ret = this.getExtent();
		ret[0] = this.toGlobalCoord(ret[0]);
		ret[1] = this.toGlobalCoord(ret[1]);
		asc && ret[0] > ret[1] && ret.reverse();
		return ret;
	};

	Axis2D.prototype.pointToData = function (point, clamp) {
		return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);
	};
	/**
   * Set ordinalSortInfo
   * @param info new OrdinalSortInfo
   */

	Axis2D.prototype.setCategorySortInfo = function (info) {
		if (this.type !== 'category') {
			return false;
		}

		this.model.option.categorySortInfo = info;
		this.scale.setSortInfo(info);
	};

	return Axis2D;
}(Axis);

export default Axis2D;